Digital video streams can be encoded to efficiently compress the video into a digital bitstream for storage on non-transitory digital media or streaming transmission through bandwidth-limited communication channels. However, packet loss and other errors may occur during video bitstream transmission or storage, resulting in errors in decoding the bitstream. It is also common that the available channel bandwidth may change from time to time, causing problems in real-time video transmission.